feat: add ASDF as community install option#8847
Conversation
- Add ASDF entry to constants.json installMethods array - Add i18n strings for ASDF across all 12 locale files with platformInfo Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryLow Risk Overview Adds the new i18n key Reviewed by Cursor Bugbot for commit 2c29d15. Bugbot is set up for automated code reviews on this repo. Configure here. |
👋 Codeowner Review RequestThe following codeowners have been identified for the changed files: Team reviewers: @nodejs/nodejs-website Please review the changes when you have a chance. Thank you! 🙏 |
|
Note Your Pull Request seems to be updating Translations of the Node.js Website. Whilst we appreciate your intent; Any Translation update should be done through our Crowdin Project. Thank you! |
| } | ||
| ,{ | ||
| "id": "ASDF", | ||
| "icon": "asdf", |
There was a problem hiding this comment.
Missing icon component causes runtime crash
High Severity
The "icon": "asdf" value references a non-existent export from @node-core/ui-components/Icons/InstallationMethod. That module only exports Choco, Docker, FNM, Homebrew, N, NVM, and Volta — there is no asdf (or ASDF) export. The createIcon function will resolve IconModule["asdf"] to undefined, and React will crash when attempting to render <undefined />.
Reviewed by Cursor Bugbot for commit c21dac7. Configure here.
| "choco": "Chocolatey est un gestionnaire de paquets pour Windows.", | ||
| "docker": "Docker est une plateforme de conteneurisation.", | ||
| "n": "\"n\" est un gestionnaire de versions Node.js multiplateforme.", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
Non-English locales have untranslated ASDF descriptions
Medium Severity
The asdf description string is English ("ASDF is a cross-platform version manager.") in all 11 non-English locale files (fr, id, ja, ko, pt-br, pt, ro, ta, uk, zh-cn, zh-tw). Every other entry in those files is properly translated into the respective language, so this breaks the localized user experience.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit c21dac7. Configure here.
There was a problem hiding this comment.
Pull request overview
Adds ASDF as a community-maintained installation method on the site’s Node.js download page, along with a new platformInfo i18n string used in the download UI footer.
Changes:
- Adds an
ASDFentry to the downloadinstallMethodsconstants list (id, icon, URL, OS compatibility, info key). - Adds
layouts.download.codeBox.platformInfo.asdfstring entries across multiple locale JSON files.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/i18n/src/locales/zh-tw.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/zh-cn.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/uk.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/ta.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/ro.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/pt.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/pt-br.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/ko.json | Adds platformInfo.asdf string (currently English); also modifies docker line for comma. |
| packages/i18n/src/locales/ja.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/id.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/fr.json | Adds platformInfo.asdf string (currently English). |
| packages/i18n/src/locales/en.json | Adds the new English source string for platformInfo.asdf. |
| apps/site/util/download/constants.json | Adds ASDF to installMethods list (id/icon/url/info/compatibility). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "id": "ASDF", | ||
| "icon": "asdf", | ||
| "name": "ASDF", | ||
| "compatibility": { | ||
| "os": ["MAC", "LINUX", "WIN"] |
There was a problem hiding this comment.
The new install method introduces a new id ("ASDF"). Please also update the InstallationMethod union in apps/site/types/release.ts to include this value; otherwise parts of the UI state and dropdown typing rely on unsafe casts and can get out of sync.
| } | ||
| ,{ | ||
| "id": "ASDF", | ||
| "icon": "asdf", | ||
| "name": "ASDF", | ||
| "compatibility": { | ||
| "os": ["MAC", "LINUX", "WIN"] | ||
| }, | ||
| "url": "https://github.com/asdf-vm/asdf", | ||
| "info": "layouts.download.codeBox.platformInfo.asdf" | ||
| } |
There was a problem hiding this comment.
The array item separator is formatted as ,{ on its own line. This is valid JSON but inconsistent with the surrounding style and makes diffs harder to read. Prefer ending the previous object with a trailing comma and starting the next object on a new, properly indented line.
| } | |
| ,{ | |
| "id": "ASDF", | |
| "icon": "asdf", | |
| "name": "ASDF", | |
| "compatibility": { | |
| "os": ["MAC", "LINUX", "WIN"] | |
| }, | |
| "url": "https://github.com/asdf-vm/asdf", | |
| "info": "layouts.download.codeBox.platformInfo.asdf" | |
| } | |
| }, | |
| { | |
| "id": "ASDF", | |
| "icon": "asdf", | |
| "name": "ASDF", | |
| "compatibility": { | |
| "os": ["MAC", "LINUX", "WIN"] | |
| }, | |
| "url": "https://github.com/asdf-vm/asdf", | |
| "info": "layouts.download.codeBox.platformInfo.asdf" | |
| } |
| "choco": "Chocolatey é um gerenciador de pacotes para Windows.", | ||
| "docker": "Docker é uma plataforma de conteinerização.", | ||
| "n": "\"n\" é um gerenciador de versões do Node.js multiplataforma.", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new pt-BR locale string is still in English. Please translate it to Brazilian Portuguese to keep platformInfo localized.
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "\"ASDF\" é um gerenciador de versões multiplataforma.", |
| "choco": "ChocolateyはWIndows用のパッケージマネージャーです。", | ||
| "docker": "Dockerはコンテナー化に関するプラットフォームです。", | ||
| "n": "\"n\"はクロスプラットフォームに対応したNode.jsのバージョンマネージャーです。", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new Japanese locale string is still in English. Please provide a Japanese translation for consistency with the rest of platformInfo.
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "\"ASDF\"はクロスプラットフォームに対応したバージョンマネージャーです。", |
| "choco": "Chocolatey 是 Windows 的套件管理程式。", | ||
| "docker": "Docker 是一款容器化平台。", | ||
| "n": "「n」是跨平台的 Node.js 版本管理程式。", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new zh-tw locale string is still in English. Please translate it to Traditional Chinese to match the rest of platformInfo (the other entries here are localized).
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "「ASDF」是跨平台的版本管理程式。", |
| "choco": "Chocolatey est un gestionnaire de paquets pour Windows.", | ||
| "docker": "Docker est une plateforme de conteneurisation.", | ||
| "n": "\"n\" est un gestionnaire de versions Node.js multiplateforme.", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new French locale string is still in English. Please translate it to French to match the other localized strings in platformInfo.
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "\"ASDF\" est un gestionnaire de versions multiplateforme.", |
| "choco": "Chocolatey 是一款 Windows 软件包管理器。", | ||
| "docker": "Docker 是一个容器化平台。", | ||
| "n": "\"n\" 是一个跨平台的 Node.js 版本管理器。", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new zh-cn locale string is still in English. Please translate it to Simplified Chinese to keep platformInfo localized.
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "ASDF 是一个跨平台的版本管理器。", |
| "choco": "Chocolatey — це менеджер пакетів для Windows.", | ||
| "docker": "Docker — це платформа контейнеризації.", | ||
| "n": "«n» — це кросплатформний менеджер версій Node.js.", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new Ukrainian locale string is still in English. Please provide a Ukrainian translation for consistency with the rest of platformInfo.
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "«ASDF» — це кросплатформний менеджер версій.", |
| "choco": "Chocolatey என்பது Windows இற்கான பேக்கேஜ் மேலாளர்.", | ||
| "docker": "Docker என்பது containerization தளம்.", | ||
| "n": "\"n\" குறுக்கு-பிளாட்ஃபார்ம் Node பதிப்பு மேலாளர்.", | ||
| "asdf": "ASDF is a cross-platform version manager.", |
There was a problem hiding this comment.
This new Tamil locale string is still in English. Please translate it to Tamil so the platformInfo block remains localized.
| "asdf": "ASDF is a cross-platform version manager.", | |
| "asdf": "ASDF என்பது ஒரு குறுக்கு-பிளாட்ஃபார்ம் பதிப்பு மேலாளர்.", |
| "brew": "Homebrew는 macOS와 Linux용 패키지 관리자입니다.", | ||
| "choco": "Chocolatey는 Windows용 패키지 관리자입니다.", | ||
| "docker": "Docker는 컨테이너화 플랫폼입니다. " | ||
| "docker": "Docker는 컨테이너화 플랫폼입니다. ", |
There was a problem hiding this comment.
While touching this line to add the trailing comma, consider removing the trailing space inside the string value (it will render as an extra space in the UI).
| "docker": "Docker는 컨테이너화 플랫폼입니다. ", | |
| "docker": "Docker는 컨테이너화 플랫폼입니다.", |
- fr.json: revert "Fondation OpenJS" back to "OpenJS Foundation" - ta.json: revert Tamil translation back to "OpenJS Foundation" Per previous PR nodejs#6847, OpenJS Foundation is a proper noun and should not be translated in any locale. Co-Authored-By: Claude Opus 4.7 <[email protected]>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
There are 4 total unresolved issues (including 2 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2c29d15. Configure here.
| "icon": "asdf", | ||
| "name": "ASDF", | ||
| "compatibility": { | ||
| "os": ["MAC", "LINUX", "WIN"] |
There was a problem hiding this comment.
ASDF incorrectly listed as Windows-compatible
Medium Severity
The ASDF compatibility includes "WIN" in its os array, but ASDF does not natively support Windows — it only works through WSL2. Every other Unix-based version manager in the list (nvm, fnm, n, brew) correctly limits compatibility to ["MAC", "LINUX"]. Including "WIN" will cause ASDF to appear as an installation option for Windows users, who will then find it doesn't work on their platform.
Reviewed by Cursor Bugbot for commit 2c29d15. Configure here.
| "legal": "Copyright © <foundationName>OpenJS Foundation</foundationName> et les contributeurs Node.js. Tous droits réservés.\nLa <foundationName>OpenJS Foundation</foundationName> détient des marques déposées et utilise des marques commerciales.\nPour consulter la liste des marques de la <foundationName>OpenJS Foundation</foundationName>, veuillez vous référer à notre <trademarkPolicy>Politique relative aux marques</trademarkPolicy> ainsi qu’à la <trademarkList>Liste des marques</trademarkList>.\nLes marques et logos qui ne figurent pas dans la <trademarkList>liste des marques de la OpenJS Foundation</trademarkList> sont des marques commerciales™ ou des marques déposées® appartenant à leurs détenteurs respectifs. Leur utilisation n’implique aucune affiliation ni approbation de leur part.", | ||
| "links": { | ||
| "foundationName": "Fondation OpenJS", | ||
| "foundationName": "OpenJS Foundation", |
There was a problem hiding this comment.
Unrelated locale changes revert translated foundation name
Low Severity
In fr.json, foundationName was changed from the French translation "Fondation OpenJS" to the English "OpenJS Foundation". Similarly in ta.json, it was changed from the Tamil "OpenJS நிறுவனம்" to "OpenJS Foundation". These are unrelated to the ASDF feature and appear to be accidental reversions of localized strings back to English.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 2c29d15. Configure here.
|
Duplicate of #8800 |


Description
Add ASDF (Another Setup Tool) as a community-maintained version manager option on the Node.js download page.
ASDF is a cross-platform version manager that supports Node.js along with many other languages/tools. It's widely used in the developer community and missing from the list of community install options.
Changes
constants.jsoninstallMethods array with appropriate metadata (icon, URL, platform compatibility)Co-Authored-By: Claude Opus 4.7 [email protected]